package com.github.phoenics.teacher.itheima.netty;

import io.netty.buffer.*;
import io.netty.channel.*;
import io.netty.channel.nio.*;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.handler.codec.ByteToMessageDecoder;
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
import io.netty.handler.codec.MessageToByteEncoder;
import io.netty.handler.codec.MessageToMessageDecoder;
import io.netty.util.concurrent.*;

/**
 * 源代码索引
 *
 * @author Phoenics Chow
 * on 2020年01月13日
 */
public class SourceCode {
    /*ByteBuf源码*/
    AbstractByteBuf abstractByteBuf;
    AbstractReferenceCountedByteBuf abstractReferenceCountedByteBuf;
    UnpooledHeapByteBuf unpooledHeapByteBuf;
    PooledByteBufAllocator pooledByteBufAllocator;

    /*  ByteBuf相关辅助功能   */
    ByteBufHolder bufHolder;
    ByteBufAllocator byteBufAllocator;
    CompositeByteBuf compositeByteBuf;
    ByteBufUtil byteBufUtil;

    /**Channel源码**/
    AbstractChannel abstractChannel;
    AbstractNioChannel abstractNioChannel;
    AbstractNioByteChannel abstractNioByteChannel;
    AbstractNioMessageChannel abstractNioMessageChannel;
    NioServerSocketChannel nioServerSocketChannel;
    NioSocketChannel nioSocketChannel;

    /**Unsafe 相关源代码**/
    AbstractChannel abstractChannel2; //内部类 AbstractUnsafe
    AbstractNioChannel abstractNioChannel2;//内部类 AbstractNioUnsafe
    AbstractNioByteChannel abstractNioByteChannel2; //内部类 NioByteUnsafe

    /**DefaultChannelPipeline 相关源代码**/
    DefaultChannelPipeline defaultChannelPipeline;
    ChannelInboundHandler channelInboundHandler;

    /**ChannelHandler 相关源代码**/
    ByteToMessageDecoder byteToMessageDecoder;
    MessageToMessageDecoder messageToMessageDecoder;
    LengthFieldBasedFrameDecoder lengthFieldBasedFrameDecoder;
    MessageToByteEncoder messageToByteEncoder;





    /**NioEventLoop 相关源代码**/
    NioEventLoop nioEventLoop;

    /**NioEventLoopGroup 相关源代码**/
    NioEventLoopGroup nioEventloopGroup;
    EventExecutorGroup eventExecutorGroup;
    AbstractEventExecutorGroup abstractEventExecutorGroup;
    MultithreadEventExecutorGroup multithreadEventExecutorGroup;
    /**ChannelFuture 相关源代码**/
    ChannelFuture channelFuture;
    AbstractFuture abstractFuture;
    /**DefaultPromise 相关源代码**/
    DefaultPromise defaultPromise;



}
